<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>02_函数</title>
</head>
<body>
<script>
    function f1(){
        console.log('f1被调用了')
    }
    f1();
    //2.带参数的函数
    function f2(n){//形参
        console.log('f2被调用了!')
        console.log(n);
    }
    f2(1);//实参
    f2(false);
    f2('hello');

    //3.形参与实参的个数问题
    function f3(x,y){
        console.log(x+y);
    }
    f3(1,2);//3
    f3(1,2,3);//3 当实参个数大于形参个数时,多余的实参会被舍弃掉
    f3(1);//1+undefined=NaN 当实参个数小于形参个数时,未被赋值的形参值为undefined
    /*当一个数字与 undefined 相加时，undefined 会被转换为 NaN
数字 + NaN = NaN
因此 1 + undefined 的结果是 NaN*/

    //4.函数的返回值
    function f4(x,y){
        return x+y;
    }
    var result = f4(4,2);
    console.log(result);//将函数的返回值保存在result变量中并输出
    console.log(f4(5,2));//直接打印函数return的值

    //5.第二种函数声明的方式
    var f5 = function(){
        console.log('f5');
    }
    f5();//变量名f5保存了函数的全部内容,可以通过此变量名充当方法名直接调用该函数
    console.log(f5);//ƒ (){console.log('f5');} 'function'

    //6.第三种声明方式 箭头函数
    //将函数整体交给常量f6来保存,调用时直接通过常量名充当方法名调用即可
    const f6 = (n)=>{
        console.log('f6');
        console.log(n);
    }
    f6(777);
</script>
</body>
</html>